#ifndef RECIPE_H_
#define RECIPE_H_

#include <string>
#include <vector>

class Ingredient
{
public:
    std::string get_name();
    std::string get_key();
    float get_amount();
    
    Ingredient();
    Ingredient(std::string ikey, std::string iname, float ivolume);
    
private:
    std::string key;
	std::string name;
    float amount;
};


class Recipe
{
public:
    std::string get_key();
    std::string get_name();
	std::vector <Ingredient> get_ingredients();
    
	float get_volume();
	
    Recipe();
    Recipe(std::string rkey, std::string rname);
	Recipe(std::string rkey, std::string rname, std::vector <Ingredient> ringredients);
    
private:
    std::string key;
    std::string name;
    std::vector<Ingredient> ingredients;
    void add_ingredient(std::string ikey, std::string iname, float ivolume);
    void add_ingredient(Ingredient ingredient);

friend class RecipeFactory;
};

#endif
